13 research outputs found
Program Model Checking: A Practitioner's Guide
Program model checking is a verification technology that uses state-space exploration to evaluate large numbers of potential program executions. Program model checking provides improved coverage over testing by systematically evaluating all possible test inputs and all possible interleavings of threads in a multithreaded system. Model-checking algorithms use several classes of optimizations to reduce the time and memory requirements for analysis, as well as heuristics for meaningful analysis of partial areas of the state space Our goal in this guidebook is to assemble, distill, and demonstrate emerging best practices for applying program model checking. We offer it as a starting point and introduction for those who want to apply model checking to software verification and validation. The guidebook will not discuss any specific tool in great detail, but we provide references for specific tools
Predicting Accurate and Actionable Static Analysis Warnings: An Experimental Approach
Static analysis tools report software defects that may or may not be detected by other verification methods. Two challenges complicating the adoption of these tools are spurious false positive warnings and legitimate warnings that are not acted on. This paper reports automated support to help address these challenges using logistic regression models that predict the foregoing types of warnings from signals in the warnings and implicated code. Because examining many potential signaling factors in large software development settings can be expensive, we use a screening methodology to quickly discard factors with low predictive power and cost-effectively build predictive models. Our empirical evaluation indicates that these models can achieve high accuracy in predicting accurate and actionable static analysis warnings, and suggests that the models are competitive with alternative models built without screening
Predicting accurate and actionable static analysis warnings
Static analysis tools report software defects that may or may not be detected by other verification methods. Two challenges complicating the adoption of these tools are spurious false positive warnings and legitimate warnings that are not acted on. This paper reports automated support to help address these challenges using logistic regression models that predict the foregoing types of warnings from signals in the warnings and implicated code. Because examining many potential signaling factors in large software development settings can be expensive, we use a screening methodology to quickly discard factors with low predictive power and cost-effectively build predictive models. Our empirical evaluation indicates that these models can achieve high accuracy in predicting accurate and actionable static analysis warnings, and suggests that the models are competitive with alternative models built without screening
Proof-Carrying Plans: a Resource Logic for AI Planning
Recent trends in AI verification and Explainable AI have raised the question
of whether AI planning techniques can be verified. In this paper, we present a
novel resource logic, the Proof Carrying Plans (PCP) logic that can be used to
verify plans produced by AI planners. The PCP logic takes inspiration from
existing resource logics (such as Linear logic and Separation logic) as well as
Hoare logic when it comes to modelling states and resource-aware plan
execution. It also capitalises on the Curry-Howard approach to logics, in its
treatment of plans as functions and plan pre- and post-conditions as types.
This paper presents two main results. From the theoretical perspective, we show
that the PCP logic is sound relative to the standard possible world semantics
used in AI planning. From the practical perspective, we present a complete Agda
formalisation of the PCP logic and of its soundness proof. Moreover, we
showcase the Curry-Howard, or functional, value of this implementation by
supplementing it with the library that parses AI plans into Agda's proofs
automatically. We provide evaluation of this library and the resulting Agda
functions.Comment: PPDP 2020, 13 pages, 9 figure